home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
grafik
/
3d & render tools
/
xpgs-2.5
/
xpgs.txt
< prev
next >
Wrap
Text File
|
1996-07-16
|
37KB
|
1,145 lines
This is an abridged and edited version of the man pages intended for VMS
users:
Copyright 1994 and 1995, 26th January.
By Peter Chang. All rights reserved.
peterc@a3.ph.man.ac.uk
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that copy-
right notice and this permission notice appear in supporting documentation,
and that the name of the copyright holder not be used in advertising or
publicity pertaining to distribution of the software without specific,
written prior permission. The copyright holder makes no representations
about the suitability of this software for any purpose. It is provided "as
is" without express or implied warranty.
The copyright holder disclaims all warranties with regard to this software,
including all implied warranties of merchantability and fitness, in no
event shall the copyright holder be liable for any special, indirect or
consequential damages or any damages whatsoever resulting from loss of use,
data or profits, whether in an action of contract, negligence or other tor-
tious action, arising out of or in connection with the use or performance
of this software.
=============================================================================
xpgs(6) xpgs(6)
NAME
xpgs - a suite of programs to design, generate and animate SIRDS for the X
Window System, and output SIS or autostereograms in a variety of formats
SYNTAX
xpgs [options] <polyh or xss file>
OVERVIEW
SIRDS stands for Single-Image Random Dots Stereogram; other common terms
are RDS, SIS and autostereograms though these do not strictly apply to, or
imply, SIRDS.
The theory of SIRDS and autostereograms can be found in many postings to
alt.3d (including a FAQ obtainable from
http://www.cs.waikato.ac.nz/~singlis/sirds.html) and comp.graphics, there
are also some books around which deal with the subject. Some information
can be obtained on RDS from Bela Julesz's book "Foundations of Cyclopean
Perceptions"; a more recent source of information is the paper by Thimbleby
et al called "Displaying 3D images: Algorithms for SIRDS", available from
Stuart Inglis (singlis@waikato.ac.nz); also there is a short article called
"Stereography and Autostereograms" by the author of this package which can
be found, along with a gallery and URL links to other WWW pages on SIRDS,
at http://h2.ph.man.ac.uk/gareth/sirds.html. Further resources can be
found at the main SIRDS at ftp://katz.anu.edu.au/pub/stereograms/.
In this suite of programs, we start with a description of a volume of space
using Cartesian coordinates to label the vertices of the objects within the
space and lists of the polygonal faces which define each object. The coor-
dinate axes are defined as x - horizontal (right), y - vertical (upward)
and z - perpendicular to the screen (toward the viewer).
With this description, two buffers are built using a method described in
the article mentioned above.
There are two basic types of autostereograms, these differ in the way the
image is viewed. The two possibilities are wide-eyed (WE) and cross-eyed
(CE) viewing. For whatever reasons, some people find it much easier to look
at SIRDS cross-eyed though the vast majority learn to see them wide-eyed.
The parameters of the programs are :-
VD = viewing distance from the screen or paper (300mm)
ES = eye separation (65mm)
OS = offset of coordinate origin into (or out of) screen or paper (150mm)
The background plane is set at the offset OS+OY, this can be changed with
the -background option.
The default options are set to give a reasonable wide-eyed (WE) SIRDS of
the objects on top of a background plane.
STRUCTURE
A layout of the suite's programs and associated data follows
3d datasets
|
|
v
cvtopolyh mkpolyh
| |
| |
| |
/-------------------------\ paint package
| | | ^
| (.polyh) | (.polyh) | | (.p?m)
| | | |
v v v v
xss --------> xpgs -------> cvtoppm <------ mindimage
| (.xss) | | | (.rle)
| | (.p?m) | |
| | v |
\-------------------> sisgen \----------> vpgs
(.xss) | (.p?m)
|
|
v
xv
MindImage is a PC SIRDS generator, xv is the X11 graphics viewer. The data
files are differentiated by their name extensions given in parentheses.
Although not shown on the diagram, xss, vpgs and xpgs can save an image in
X11 bitmap (.xbm) format and vpgs and xpgs can also save an image as a
Postscript (.ps) file.
DATA FILES
.polyh We have incorporated one 3D data format into xpgs:
AVS polyh - list of vertices and list of polygonal faces given
by indexed points.
(There is a slight difference with the inclusion of an optional
comment line at the start of the file which begins with a hash
"#".)
Additional objects can be converted into this format using the
cvtopolyh program, it is able to change X3d v2.0 .obj files, Wave-
front .obj files and another format .3ds (I can't remember what
program uses this). New objects defined by functions can be made
using mkpolyh.
We have bundled some objects for you to try out - regular solids in
polyh format and a couple of objects converted from X3d v2.0
objects and Wavefront objects.
More objects can be found at ftp://avalon.vislab.navy.mil/ or
its mirrors.
.rle This is MindImage's data format using a basic run length encoding
method with indexing.
.p?m = .ppm and .pgm
These are the colour and grey-scale portable pixmap formats from
the PBM packages (NetPBM or PBMPlus).
.xss This is a simple description format of a scene made from multiple
polyh objects.
DESCRIPTION
Xpgs is an X11 program that generates, animates and outputs SIRDS. It
takes an .xss or a .polyh file and optional switches as its command line
arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct. The default values are given in parentheses.
-display <display>
sets the X display name. By default it is the local host or that one
defined in the the logical DECW$DISPLAY.
-geometry <geometry>
sets the X geometry. (770x476 or 720x445)
-wait <delay>
specifies the delay between frames in milliseconds used during anima-
tion. (300)
-frames <1-24>
gives the number of frames for xpgs to generate. (1)
If xpgs was compiled with the XPGSUSEPM macro defined then the number
of frames of animation possible depends on the X server memory alloca-
tion, ie. the number of big Pixmaps it can support. If your server
can't handle a large number then either give xpgs a smaller number of
frames, eg. "-f 3", or recompile xpgs without the -DXPGSUSEPM flag in
the Makefile (make.com or descrip.mms). Note if you take the latter
option then the animation may not be as fast as using Pixmaps, the per-
formance depends on the X server.
-background <b>
sets the background plane at z=b*OY. (-1.0)
-reverse
sets xpgs to cater for crosseyed viewing, by default it caters for
wide-eyed viewing.
-enlarge <ef>
specifies the enlargement of depth effect in the final image. (1.0)
-mag <mf>
sets the magnification of the scene. (1.0)
-paper <wxh>
specifies the size of array for Postscript output.
-indicoff
turns off indicators in window (used to aid the viewing process).
-zblines <zb>
sets the number of lines that each z-buffer will use. (256)
This limits the internal size of all z-buffers used in the program
without affecting the size of the stereogram output. It should be used
only when memory constraints are more important than speed considera-
tions: the smaller the value is the slower the program will become.
-DENSITY <0-255>
sets the density of black dots in the SIRDS. (127)
-GREY <1,2,4,8>
sets the number of grey-scale bits used in Postscript output. (1)
-SHIMMER
sets xpgs to the shimmer mode, to aid newbies.
-help
prints a summary of command line options and returns to DCL.
Once running, it will display a few parameters in the terminal window,
create a empty graphics window and start to generate the SIRDS(s). Each
frame will be shown in sequence as the program proceeds. When finished,
the program displays the "all done" message and enters the pause mode.
KEYS
With the mouse pointer within the boundaries of the graphics window, xpgs
will respond to a set of keypresses.
q quits the program.
h pops up a help window.
a changes the rotation axis randomly.
i re-initialise all of the points.
p toggles the pause mode on and off.
r reverses the sequence of frames.
While paused:
c saves the current frame in .xss format.
l loads a new object.
o reloads old file.
n skips to the next frame.
s saves the current frame as a Postscript file.
w saves the current frame as a X11 bitmap.
See xss(6) about mouse controls and popup dialogue windows.
FILES
BUGS
If you find any bugs, please report them to one of the authors listed
below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHORS, COPYRIGHTS, AND WARNINGS
Copyright 1994 and 1995, 26th January.
By Peter Chang and Gareth Richards. All rights reserved.
peterc@a3.ph.man.ac.uk
gareth@h1.ph.man.ac.uk
Version 2.5
=============================================================================
vpgs(6) vpgs(6)
NAME
vpgs - a SIRDS viewer for the X Window System, using depth map data
SYNTAX
vpgs [options] <p?m file>
DESCRIPTION
Vpgs is an X11 program that displays SIRDSs using data from depth maps
saved in the portable pixmap format, .pgm or .ppm.
It takes an .p?m file and optional switches as its command line arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct. The default values are given in parentheses.
-display <display>
sets the X display name. By default it is the local host or that one
defined in the logical DECW$DISPLAY.
-geometry <geometry>
sets the X geometry. Defaults to the depth map size.
-background <b>
sets the background plane at z=b*OY. (-1.0)
-reverse
sets vpgs to cater for crosseyed viewing, by default it caters for
wide-eyed viewing.
-enlarge <ef>
specifies the enlargement of depth effect in the final image. (1.0)
-step <XxY>
gives the steps vpgs uses to traverse the depth map, see sisgen(6).
(1x1)
-paper <wxh>
specifies the size of array for Postscript output.
-indicoff
turns off indicators in window (used to aid the viewing process).
-zblines <zb>
sets the number of lines that each z-buffer will use, see xpgs(6).
(256)
-DENSITY <0-255>
sets the density of black dots in the SIRDS. (127)
-GREY <1,2,4,8>
sets the number of grey-scale bits used in Postscript output. (1)
-help
prints a summary of command line options and returns to DCL.
Once running, it will display a few parameters in the terminal window,
create a empty graphics window and start to generate the SIRDS. When fin-
ished, the program displays a "all done" message.
When the window is re-sized, the SIRDS is regenerated.
KEYS
With the mouse pointer within the boundaries of the graphics window, vpgs
will respond to a set of keypresses.
q quits the program.
h pops up a help window.
l loads a .p?m file.
o reloads old file.
s saves the frame as a Postscript file.
w saves the frame as a X11 bitmap.
See xss(6) about mouse controls and popup dialogue windows.
FILES
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994 and 1995, 26th January.
By Peter Chang. All rights reserved.
peterc@a3.ph.man.ac.uk
Version 2.5
=============================================================================
sisgen(6) sisgen(6)
NAME
sisgen - a program to generate and output a SIS
SYNTAX
sisgen [options] <input xss or p?m file>
DESCRIPTION
Sisgen is a program that generates SISs. It can make random tiles or use a
tile given in the portable bitmap format .pgm or .ppm.
It takes an .xss file or a .polyh file as the 3D input data or alterna-
tively a .p?m file as the depth map and optional switches as its command
line arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct. The default values are given in parentheses.
-geometry <wxh>
sets the picture geometry, this defaults to the values given if the
input is 3D data otherwise it defaults to the depth map size. (770x476
or 720x445)
-background <b>
sets the background plane z=b*OY. (-1.0)
-reverse
sets sisgen to cater for crosseyed viewing, by default it caters for
wide-eyed viewing.
-enlarge <ef>
specifies the enlargement of depth effect in the final image. (1.0)
-mag <mf>
sets the magnification of the scene, only applies to 3D data. (1.0)
-pmm <res>
sets the dots' resolution in units of pixels per millimetre. (4.0)
-fine <0-8> <tol>
sets the smoothing factors which sisgen uses for colour interpolation.
(0 1)
Sisgen uses buffers which are integer based. So for smoother stereo-
grams, the numbers are scaled up by powers of two. In finding hidden
surfaces in the stereogram, the integers in the buffers are compared
and, if found with a certain range of each other, a point is considered
visible.
The first parameter is the multiplying factor in powers of two, whilst
the second gives the maximum absolute difference of values found in the
hidden surface check.
For example, "-fine 2 7" means the numbers are first multiplied by 4
(2^2) and if found to have an absolute difference less than or equal to
7 then the corresponding point is visible.
-tile <0-8>
sets the tiling method to use. (0)
In all, sisgen allows nine different methods of using a tile to make a
SIS.
Leave tile as it is and
0 start from left
1 start from centre
2 start from right
Scale the tile to fit on the background plane and
3 start from left
4 start from centre
5 start from right
Scale each line from the tile to fit the deepest plane that contains a
point on that line and
6 start from left
7 start from the point in question
8 start from right
-image <pxm file>
gives the name of the tile to be used in making the autostereogram.
-xss
signifies that the input file contains 3D data and is either an .xss or
a .polyh file. This is the default.
-dmap
signifies that the input file contains a depth map and is a grey-scale
or colour portable pixmap, .pgm or .ppm.
-step <XxY>
gives the steps sisgen uses to traverse the depth map. (1x1)
The technique for making a stereogram from a depth map involves inter-
preting the map as a very fine rectangular net then projecting this to
two buffers.
This method is quite slow for large depth maps, so to speed up the pro-
cess the net is made coarser by skipping intervening points in both the
x and y directions.
For example, "-step 2x3" means sisgen uses only alternate values in the
x direction and every third value in the y direction.
-RANDOM <0-2>
specifies which type of random tile to generate. (0)
There are three kinds of random tiles: 0) black & white; 1) grey-scale;
and 2) colour using a rainbow palette of 24 colours.
-zblines <zb>
sets the number of lines that each z-buffer will use, see xpgs(6).
(256)
-DENSITY <0-255>
sets the density of black dots in the SIRDS. (127)
-help
prints a summary of command line options and returns to DCL.
Once running, it will load the input file, display a few parameters,
request a filename (if one was not specified) and save the SIS. If sisgen
is in the pipe mode then it just loads in the file(s) and sends the result
down stdout. An example of using the pipe mode is "sisgen -o foo.xss | xv
-".
FILES
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994, 16th November.
By Peter Chang. All rights reserved.
peterc@v2.ph.man.ac.uk
Version 1.0
=============================================================================
cvtoppm(6) cvtoppm(6)
NAME
cvtoppm - a program to generate depth maps and convert MindImage's rle
files to pgm and ppm formats
SYNTAX
cvtoppm [options] <input file> [output p*m file]
DESCRIPTION
Cvtoppm is a utility with several functions. Primarily, it generates depth
maps from 3D datasets such as those given in .polyh and and rescaling old
depth maps. All output is in one of the portable pixmap formats, chosen by
the user.
The main purpose of this program is to allow those feeling artistic to
create and amend a depth map with a paint package. The result can be
viewed as a SIRDS or SIS using vpgs or sisgen.
The depth map output is either a grey-scale (.pgm) or colour (.ppm) image.
Normally, the format used has an intensity value in the range 0-255 (for
colour, three values are used in each pixel) this limits the depth resolu-
tion to 256 (or 16777216) levels. This limitation can be altered with a
switch but the disadvantage is that the resultant file will be rather
large. [Technically, when zmax is less than 256 the PBM raw formats are
used instead of the ASCII formats.] Also unless the computer display you
are using can cope with a lot more than 256 colours, editing the depth maps
is fraught with difficulties. That is, you have to have at least 24bit
colour to manipulate continuous colour images.
It takes at least one filename (or a switch to use stdin) and optional
switches as its command line arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct. The default values are given in parentheses.
-geometry <wxh>
sets the picture geometry, this defaults to the values given if the
input is 3D data otherwise it defaults to the depth map size. (320x198)
-background <b>
sets the background plane at z=b*OY. (-1.0)
-enlarge <ef>
specifies the enlargement of z coordinate . (1.0)
-mag <mf>
sets the magnification of the scene, only applies to 3D data. (1.0)
-pmm <res>
sets the dots' resolution in units of pixels per millimetre. (4.0)
-zmax <zm>
sets the maximum value of each primary colour to be used in saving a
.ppm file or the number of greys in a .pgm file. (255)
-colour
specifies that the output file will be a colour one.
-xss
signifies that the input file contains 3D data and is either an .xss or
a .polyh file. This is the default.
-dmap
signifies that the input file contains a depth map and is a grey-scale
or colour portable pixmap, .pgm or .ppm.
-mind
signifies that the input file contains a rle depth map generated by
MindImage.
-zblines <zb>
sets the number of lines that each z-buffer will use, see xpgs(6).
(256)
-help
prints a summary of command line options and returns to DCL.
Once running, it will decide on the operations to perform solely on the
command line switches.
FILES
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994, 16th November.
By Peter Chang. All rights reserved.
peterc@v2.ph.man.ac.uk
Version 1.0
=============================================================================
xss(6) xss(6)
NAME
xss - a scene setter for the X Window System, using polyh data
SYNTAX
xss [options] <polyh or xss file>
DESCRIPTION
Xss is an X11 program that displays and manipulates wireframe objects. It
takes a .polyh or .xss file as input and optional switches as its command
line arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct.
-display <display>
sets the X display name. By default it is the local host or that one
defined in the logical DECW$DISPLAY.
-geometry <geometry>
sets the X geometry. (770x476 or 720x445)
-fontname <name>
uses the font described by the name. The default is the fixed font.
Once running, it will display a few parameters and some help messages in
the terminal window and create a graphics window with a wireframe model of
objects given by the input file.
CONCEPTS
In xss, the three Cartesian axes are taken to be aligned horizontal (x -
positive to the right), vertical (y - positive upward) and normal (z -
positive toward the viewer) to the viewer.
There are four modes in xss. Three object modes - rotation, scaling and
translation - and a rotation axis mode.
In the object modes, the current object is drawn in solid lines whilst the
other objects are drawn in dashed lines. The current object can be rotated,
translated, magnified or shrunk using either the keys specified below or
the control panel. Additional objects and scenes can be loaded in and
objects can be cloned or deleted as well.
In the rotation axis mode, a line appears which can be oriented in any
direction. The line shows the rotation axis that will be used in xpgs. It
is made of two halves, each drawn differently. The solid half is the north-
ern part of the axis, the dashed half is the southern part. The rotation is
defined to be clockwise as you look along the axis from the south pole
northward.
Once satisfied with the scene you have composed, the configuration can be
saved as a .xss file for use in xpgs, cvtoppm and sisgen.
GRAPHICAL USER INTERFACE
Xss has a rather primitive user interface, partly because I haven't got
round to learning to use Xt and some widget set.
WINDOW LAYOUT
There are two persistent windows in xss: the main graphics window and the
control panel. The main window shows, on startup, four subwindows:
-----------------------------------
| | |
| ----> x | |
| | | |
| | | |
| v | |
| z | |
|-------------------|-------------|
| y | y |
| ^ | ^ |
| | | | |
| | | | |
| ----> x | z <---- |
| | |
-----------------------------------
The top right subwindow contains some information about the program, the
.xss file name and the current object. The other subwindows display the
three orthographic views (third angle projections?) which are front, right
end and plan.
The objects can be drawn as wireframe figures or bounding boxes, with or
without clipping. The clipping in the orthographic scheme is separately
done in each view at the x=0, y=0 or z=0 plane.
The projection scheme be changed to a perspective one. In this scheme,
there is only one view and hence only one window (no subwindows). Also
clipping is done at the z=0 plane.
Both persistent windows are sensitive to key presses - as long as the cur-
sor (or mouse pointer) is within their boundaries. See below for the keys.
Using the mouse in the main window is limited to popping up the help window
which contains a reminder of the keys and their functions.
The control panel is where the mouse actions are most useful. This panel is
divided into two types of mouse sensitive regions: the buttons and the
mouse pad.
DIALOGUE POPUPS
When any user text input is required - for instance when a file name to
save to - a dialogue window pops up at the pointer location.
The popup window has three buttons which perform the following functions:
OK returns the text.
Clear
clears all text from the input field.
Cancel
returns without any text and cancels the operation which prompted
popup.
A number of keys are defined to facilitate editing (most a la emacs, hmm is
that correct French?):
Left & Right cursor keys, ^B
moves the cursor along the text.
^A & ^E
moves the cursor to the beginning and end of the text.
Backspace, Delete & ^H
deletes the character to the immediate left of the cursor.
Enter, Linefeed & Keypad Enter
finishes and commits the input text.
Escape
cancels the input.
^D deletes the character under the cursor.
^U deletes all the text from the beginning of the line to just left
of the cursor.
^C clears the text field.
The pointer can also be used to move the text cursor: position the pointer
to where you want the cursor to be then click one of the mouse buttons and
release.
The dialogue popup also appears in vpgs and xpgs.
PANEL BUTTONS
All buttons in the control panel are of the press and release variety. If
you press button one of the mouse (usually the left button) in the "Clip"
box and release whilst the pointer is still in that box then the action
corresponding to "Clip" is performed.
Most buttons are single action devices but others are toggles which indi-
cate the state of the program.
Quit
quits the program.
Write Bitmap
writes an X11 bitmap of the main window.
Save xss
saves the whole scene as a .xss file.
Merge
inserts an old scene from another .xss file.
Load
loads another object, i.e. .polyh file.
Clone
replicates the current object.
Delete
removes the current object.
Other
moves to another object.
Initialise
re-initialises the current object.
Translate/Turn/Magnify/Axis
puts xss into the translate/turn/magnify/axis mode.
Clip
switches on the clipping.
Projection
changes the projection scheme.
B Box
toggles the visibility of the bounding box of the current object.
- Mag +
shrinks or magnifies the current object.
MOUSE PAD
This is the large box on the bottom of the control panel containing several
small squares and some line drawings.
It has two appearances depending on the state of xss: a rotating state or a
linear state. The rotating state is shown by a dashed sphere with three
arrowed great circles and occurs when xss expects the action on the current
object (or axis) to be a rotation. The linear state is depicted by a set of
three arrowed mutually perpendicular axes and occurs when the anticipated
action is a translation or scaling.
The line graphics are an isometric view of the sphere or the triad of axes
with x and y directions going horizontally and vertically, respectively and
the z direction, from positive to negative, goes from bottom left diago-
nally across to top right.
The square boxes within the mouse pad indicate the areas that are sensitive
to mouse presses. Their positions in the mouse pad, in relation to the
arrowed lines and curves, indicate the action to be taken when pressed.
For example, in the rotating state, the rightmost square is configured to
rotate the current object clockwise as it faces the viewer; in the linear
state it is configured to translate the object right or magnify it horizon-
tally.
The squares allow a click, hold, drag and release methodology (ugh). The
further the pointer is released from the centre of the square it had click
on, the more an action is performed - provided the pointer is released
within the boundary of the mouse pad. As an aid, circles are drawn to help
the user to gauge the magnitude of their action, they indicate the number
of times a transformation will be performed.
MOUSE BUTTONS
The third (usually the right) mouse button acts like the first button but
in actions where transformations are made, its effects are fivefold. The
shift key can also be used in conjunction with the first mouse button to
act like the third.
KEYS
With the mouse pointer within the boundaries of the graphics window, xss
will respond to a set of keypresses.
q quits the program.
h pops up a help window.
w saves the main window as an X11 bitmap.
s saves the whole scene as a .xss file.
f inserts an old scene from another .xss file.
r replicates the current object.
l loads another object, i.e. .polyh file.
d deletes the current object.
o moves to another object.
i re-initialises the current object.
b toggles the bounding box of the current object.
c un/clips the current object at the z=0 plane, rendering the por-
tion below z=0 invisible. This function is to aid depth percep-
tion.
p change the projection scheme from three orthographic views to one
perspective view, or vice versa.
m magnifies the current object.
n shrinks the current object.
t toggles the between the turn, magnify and translate modes.
a toggles the rotation axis definition mode.
v toggles the verbosity of the program.
SHIFT (the shift keys)
toggles the magnitude of the changes. Holding down the shift key
makes all subsequent changes relatively coarse (by a factor of
five) and releasing it reverts to finer changes.
The manipulation keys are the cursor keys, the greater-than (or full
stop or period) key and the less-than (or comma) key. They change
the objects in a visually obvious way.
In rotation mode, (+ means clockwise about positive axis)
x axis: - Up + Down
y axis: - Left + Right
z axis: + <, - >.
In translation mode,
x axis: - Left + Right
y axis: + Up - Down
z axis: + <, - >.
In the rotation axis definition mode, the manipulations keys perform
similar tasks to the rotation mode.
BUILT-IN OBJECTS
A number of builtin objects are now available. To access them, press the
"l" key or "Load" button and type in a name (with parameters) instead of a
.polyh file.
The following primitives are available:
polygon(pdiv, pbeg, pend, chord)
a polygon in the x-y plane, made from a regular polygon of pdiv
sides (3) and starts at the vertex pbeg (0) and ends at vertex
pend (pdiv). If chord (0) is 0 then the polygon is closed with
lines from the ends to the centre, otherwise a line joins the
ends directly.
pyramid(pdiv, pbeg, pend, chord)
a pyramid with a polygon base described by polygon(pdiv, pbeg,
pend, chord) and has an apex at (0,0,1).
prism(pdiv, pbeg, pend, chord, zdiv, zno, lid)
a prism made from a polygon base that extends out in the positive
z direction to z=1. This is divided into zdiv (1) subsections and
the prism comprises zno (zdiv) of these. (If ano is greater than
adiv, then the shape is further extended.) If lid (1) is 0 then
the prism is not capped, otherwise it has end faces.
spiral(pdiv, pbeg, pend, chord, xs, yinc, adiv, ano, lid)
a shape made from the extrusions of a polygon, shifted xs (2.0)
in the x direction, rotated about the y axis. It is further
shifted smoothly so that it is displayed by yinc (0.0) in the y
direction every completed turn. This shell is divided into adiv
(36) subsections and the spiral is composed out of ano (adiv) of
these. (If ano is greater than adiv, then the shape is extruded
further.) If lid (0) is 0 then the spiral is not capped, other-
wise it has end faces.
The numbers in parentheses shown the default values taken by the program.
When you use the primitives, you need not specify all the arguments, later
values can be omitted (a la C++).
Also, there are a number of presets made from these primitives:
triangle - an equilateral triangle
square - a square
box - a cube
cylinder - a right cylinder
cone - a right cone
torus - a torus or doughnut
sphere - a ball
spring - a thick helix
You should taken care when using these builtin objects because the parser
is not too intelligent.
FILES
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994, 16th November and 14th February.
By Peter Chang. All rights reserved.
peterc@v2.ph.man.ac.uk
Version 2.0
=============================================================================
cvtopolyh(6) cvtopolyh(6)
NAME
cvtopolyh - a program to convert various 3D data formats to the AVS polyh
format
SYNTAX
cvtopolyh <options> <object file> <polyh file>
DESCRIPTION
Cvtopolyh is a program that loads in and converts various 3D object formats
to the AVS .polyh format.
A .polyh file contains a list of vertex coordinates and a list of polygonal
faces given by indexed points. (There is a slight difference with AVS's
definition with the inclusion of an optional comment line at the start of
the file which begins with a hash "#".) A number of objects can be found at
avalon.vislab.navy.mil or its mirrors.
It takes two filenames and some switches as its command line arguments.
Options
The letter in brackets is optional and when specified centres the object.
-p[c] loads a AVS .polyh file.
-3[c] loads a certain .3ds file (3D Studio?).
-b[c] loads the above type of file with an additional bounding box.
-o[c] loads an X3d v2.0 .obj file.
-w[c] loads a Wavefront .obj file.
Once running, it will load in the data file, display a few parameters,
check for redundant points, centre the object (if requested) and then nor-
malise the object. After all this, the object is saved in .polyh format
along with a comment.
FILES
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994 and 1995, 26th January.
By Peter Chang
peterc@a3.ph.man.ac.uk
Version 2.1
=============================================================================
mkpolyh(6) mkpolyh(6)
NAME
mkpolyh - a program to generate rectangular meshes or nets from given func-
tions
SYNTAX
mkpolyh [options] <output file>
DESCRIPTION
Mkpolyh is a utility to create meshes from one of several mesh functions,
of the form z = f(x,y). The data is saved as a .polyh file.
The main purpose of this program is to allow the user to write their own
mesh function and create a mesh for personal use. There are a number of
sample functions included in the source code meshfn.c to demonstrate how to
implement a mesh function.
It takes one filename and optional switches its command line arguments.
Options
All these options can be abbreviated to the least letters needed to make
the chosen option distinct. The default values are given in parentheses.
-list
lists the functions available with their default settings.
-function <fno>
sets the mesh function to be used. (0)
-size <XxYxZ>
specifies the size of the bounding box. (1.0x1.0x1.0)
-divisions <XxY>
sets the number of divisions used in the gird. (30x30)
-dmap '(<p1>,[<p2>,...])'
gives the parameters for the chosen function to use.
-help
prints a summary of command line options and returns to DCL.
Once running, it will decide on the operations to perform solely on the
command line switches.
FILES
meshfn.c - the source code containing the mesh functions.
BUGS
If you find any bugs, please report them to the author listed below.
SEE ALSO
cvtopolyh(6), cvtoppm(6), mkpolyh(6), sisgen(6), vpgs(6), xpgs(6) and
xss(6).
AUTHOR, COPYRIGHTS, AND WARNINGS
Copyright 1994, 16th November.
By Peter Chang. All rights reserved.
peterc@v2.ph.man.ac.uk
Version 1.0
=============================================================================